#ifndef _GUI_TEST_
#define _GUI_TEST_

#include "stdbool.h"
#include "stdint.h"

typedef uint16_t color_t;

#define M_PI 3.1416

#define RED    0xF800		 
#define GREEN  0x07E0
#define BLUE   0x001F
#define WHITE  0xFFFF
#define BLACK  0x0000 


//Pixel Point Drawing Interface
static void inline __draw_pixel(uint16_t x, uint16_t y, color_t c)
{
	extern void LCD_Fast_DrawPoint(uint16_t x,uint16_t y,uint16_t color);
	
	LCD_Fast_DrawPoint(x, y, c);
}

//Drawing anti-aliased lines
void draw_line_ex(int16_t x1, int16_t y1, int16_t x2, int16_t y2, color_t c, bool anti_aliasing);
//Drawing a circle
void draw_circle( int16_t x0, int16_t y0, int16_t r, int16_t c );
//Draw a filled circle
void draw_fill_circle( int16_t x0, int16_t y0, int16_t r, int16_t c );
//Drawing an arc
void draw_arc( int16_t x0, int16_t y0, int16_t r, int16_t s, int16_t c );
//Draw a rounded rectangle
void draw_round_rec( int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t r, int16_t c );
//Draw a filled rectangle
void draw_fill_rec( int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t c );
//Draw a filled rounded rectangle
void draw_fill_round_rec( int16_t x1, int16_t y1, int16_t x2, int16_t y2, int16_t r, int16_t c );
//Draws a line with a specified line width
void gui_draw_wide_line(int16_t x1, int16_t y1, int16_t x2, int16_t y2, color_t c, int16_t width);



#define draw_line(x1,y1,x2,y2,c) draw_line_ex(x1,y1,x2,y2,c,false)



#endif

